Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Rewrite-Engine</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Rewrite-Engine"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Rewrite-Engine rootpage-Rewrite-Engine skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Rewrite-Engine</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Eine <b>Rewrite-Engine</b> (von englisch <i>rewrite</i>, „umschreiben“ und <i>engine</i>, „Maschine“) ermöglicht es, an einen <a href="Webserver" title="Webserver">Webserver</a> gerichtete Anfragen intern umzuschreiben oder extern weiterzuleiten. Für den <a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache-Webserver</a> erledigt das <a href="Modul_(Software)" title="Modul (Software)">Softwaremodul</a> <i>mod_rewrite</i> diese Aufgabe. Andere Webserver wie etwa <a href="Microsoft_Internet_Information_Services" title="Microsoft Internet Information Services">Microsoft IIS</a>, <a href="Nginx" title="Nginx">Nginx</a>, <a href="Lighttpd" title="Lighttpd">Lighttpd</a> oder <a href="Hiawatha_Webserver" title="Hiawatha Webserver">Hiawatha Webserver</a> bieten ähnliche Funktionen.
</p><p>Geschaffen wurde diese Funktionalität, um nach außen ein von internen Faktoren unabhängiges Adressierungsschema zur Verfügung stellen zu können, sodass beispielsweise selbst bei einer Änderung der <a href="Dateisystem#Hierarchische_Dateisysteme" title="Dateisystem">Dateihierarchie</a> die <a href="Uniform_Resource_Locator" title="Uniform Resource Locator">URLs</a> weiterhin gültig bleiben. Man spricht in diesem Fall auch von <a href="Permanentlink" class="mw-redirect" title="Permanentlink">Permanentlinks</a>.
</p><p>Die Rewrite-Engines erlauben, die Adressumleitung von zusätzlichen Bedingungen neben der angefragten URL abhängig zu machen, zum Beispiel von der <a href="Referrer" title="Referrer">referenzierenden URL</a>, der <a href="User_Agent" title="User Agent">User-Agent-Kennung</a> oder der <a href="IP-Adresse" title="IP-Adresse">IP-Adresse</a> des anfragenden <a href="Client" title="Client">Clients</a>. Auf diese Weise können beispielsweise <a href="Weiterleitung" title="Weiterleitung">Weiterleitungen</a> oder auch <a href="Cloaking" title="Cloaking">Cloaking</a> realisiert werden.
</p>

<div class="mw-heading mw-heading2"><h2 id="Beispielanwendung">Beispielanwendung</h2></div>
<p>Rewrite-Engines werden häufig genutzt, um <a href="Ressource#Informatik" title="Ressource">Ressourcen</a> mit <a href="Webseite#Dynamische_Webseiten" title="Webseite">dynamischen</a> URLs unter Alternativadressen erreichbar zu machen.
</p><p>Die Ressource mit der internen, technisch bedingten Adresse
</p>
<dl><dd><code>/w/index.php?title=Beispiel</code></dd></dl>
<p>ist so beispielsweise auch unter folgender Adresse erreichbar
</p>
<dl><dd><code>/wiki/Beispiel</code></dd></dl>
<p>Nach außen werden dann statt der dynamischen, parametrisierten Adressen scheinbar statische Adressen verwendet. Dies ist nützlich, da kurze, selbsterklärende Adressen meist als lesbarer, einfacher zu merken und ganz allgemein als vertrauenswürdiger eingestuft werden. Man spricht in diesem Fall auch von <a href="Clean_URL" title="Clean URL">Clean URLs</a>.
</p><p>Die Umsetzung des gezeigten Anwendungsfalls variiert je nach verwendeter Webserver-Software und Kontext. In der Regel werden <a href="Regul%C3%A4rer_Ausdruck" title="Regulärer Ausdruck">reguläre Ausdrücke</a> verwendet, um ein Suchmuster zu definieren, das auf ein gewünschtes Zielmuster angewendet wird. Das Suchmuster ist dabei die scheinbare statische Adresse. Das Zielmuster ist die interne oder <i>physikalische</i> Ressource. Die dynamischen Bereiche, also beispielsweise die Artikel-ID eines Artikels aus dem Suchmuster, werden dabei meist mit Hilfe von Variablen auf das Zielmuster übertragen.
</p><p>Folgend einige Beispiele der konkreten Umsetzung für das <a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache</a>-Modul <i>mod_rewrite</i>, den Webserver <a href="Nginx" title="Nginx">nginx</a> und den Webserver <a href="Lighttpd" title="Lighttpd">Lighttpd</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Apache/mod_rewrite"><span id="Apache.2Fmod_rewrite"></span>Apache/mod_rewrite</h3></div>
<pre>RewriteEngine on
RewriteRule ^/wiki/<b>(.*)</b>$ /w/index.php?title=$1
</pre>
<div class="mw-heading mw-heading3"><h3 id="nginx">nginx</h3></div>
<pre>location /wiki {
rewrite ^/wiki/<b>(.*)</b>$ /index.php?title=$1;
}
</pre>
<div class="mw-heading mw-heading3"><h3 id="Lighttpd">Lighttpd</h3></div>
<pre>url.rewrite-once = (
"^/wiki/<b>(.*)</b>$" =&gt; "/index.php?title=$1"
)
</pre>
<p>Der in Fettschrift markierte Teil des regulären Ausdrucks bedeutet, dass jedes beliebige Zeichen in die Variable <code>$1</code> geschrieben und somit auf das Zielmuster angewendet wird.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://httpd.apache.org/docs/2.2/rewrite/"><i>mod_rewrite</i>-Modul</a> in der Apache-Dokumentation (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.isapirewrite.com/docs/"><i>ISAPI_Rewrite</i>-Modul</a> für IIS (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://wiki.nginx.org/NginxHttpRewriteModule"><i>rewrite</i>-Modul</a> im Nginx-Wiki (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModRewrite"><i>mod_rewrite</i>-Modul</a> in der <a rel="nofollow" class="external text" href="http://redmine.lighttpd.net/projects/lighttpd/wiki#Documentation">Lighttpd-Dokumentation</a> (englisch)</li>
<li><i><a rel="nofollow" class="external text" href="https://wiki.selfhtml.org/wiki/Webserver/htaccess/Umleitungen_mit_mod_rewrite">mod_rewrite</a></i> im <a href="Selfhtml" title="Selfhtml">Selfhtml</a>-Wiki (deutsch)</li>
<li><a href="Tim_Berners-Lee" title="Tim Berners-Lee">Tim Berners-Lee</a>: <a rel="nofollow" class="external text" href="http://www.w3.org/Provider/Style/URI">Hypertext Style: <i>Cool URIs don’t change</i>.</a> (englisch)</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2021-09-06" href="https://de.wikipedia.org/wiki/?title=Rewrite-Engine&amp;oldid=215362802">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>